--------------------------------------------- EasyRexx Benchmark Modula-2 Translation Notes 11/5/95 --------------------------------------------- REQUIREMENTS > Benchmark M2 compiler v1 or higher > Benchmark M2 Interface for AmigaDOS v2.04 or higher Interface Definition Translation > Removed underscores from identifiers. > ARexxContext and ARexxCommandShell are hidden types. Fields accessed only via functions from this interface. > C macros are procedures. > C static initialization of recording pointer is a pair of Create/Free procedures. > No variable-number-of-parameters procedures. Interface Implementation > Resident library link via stub routines. Protos Translation > Define an additional identifier, AREXXENDTABLE, the index of the last entry in the command table. > The main program needs a name. > Command table's initialization is done by a call to an initializier procedure. > Utilizes library base from implementation, and relies on that module's initialization to start it out at NIL. M2 Syntax Notes > CASE (switch) statement case separation marker is "|". Put one after each case as you would a break; eg, CASE i OF 0: a := b+1; c := d+2; | 1: a := d+1; | 2: a := d+2; c := b+1; END; Files > EasyRexx.def - definition module for EasyRexx library. > EasyRexx.mod - implementation module for calling EasyRexx library. > Funcs.mod - template of procedure variable processing code generation > IDS.mod - template of case statement processing code generation > TstFuncs - program using procedure variable processing > TstMacros - program using case statement processing > TstShell - program opening an arexx console > TstPointer - program displaying "recording" pointer > Assembly3.def/mod - support module for EasyRexx.mod > Assertions0.def/mod - support module for some of the test programs > Str0.def/mod - support module for some of the test programs > Str1.def/mod - support module for some of the test programs > TagsUtils.def/mod - support module for some of the test programs > Notes.txt - this file